Testing with Functions as Specifications
نویسنده
چکیده
Although computer systems penetrate all facets of society, the software running those systems may contain many errors. Producing high quality software appears to be difficult and very expensive. Even determining the quality of software is not easy. Testing is by far the most used way to estimate the quality of software. Testing itself is not easy and time consuming. In order to reduce the costs and increase the quality and speed of testing, testing should be automated itself. An automatical specification based test tool generates test data, executes the associated tests, and makes a fully automatically verdict based on a formal specification. Advantages of this approach are that one specifies properties instead of instances of these properties, test data are derived automatically instead of manually, the tests performed are always up to date with the current specification, and automatic testing is fast and accurate. We will show that functions in a functional programming language can be used very well to model properties. One branch of the automatic test system Gast handles logical properties relating function arguments and results of a single function call. The other branch of Gast handles specifications of systems with an internal state.
منابع مشابه
HEPA Filters specifications in two standards, ASME AG-1 & DOE for using in Tehran Research Reactor (TRR)
HEPA filters serve as important safety device to protect personnel as well as the public and environment from the radiation effects exist in the air, so they are vital devices in the event accidents. DOE provides directions through the use of two technical standards, 3020 and 3025, including QA requirements for the procurement, packaging, shipping and storage of HEPA filters and also provides d...
متن کاملGenerating Test Data from State-based Specifications1
Although the majority of software testing in industry is conducted at the system level, most formal research has focused on the unit level. As a result, most system level testing techniques are only described informally. This paper presents formal testing criteria for system level testing that are based on formal specifications of the software. Software testing can only be formalized and quanti...
متن کاملA Simple and Practical Approach to Unit Testing: The JML and JUnit Way
Writing unit test code is labor-intensive, hence it is often not done as an integral part of programming. However, unit testing is a practical approach to increasing the correctness and quality of software; for example, the Extreme Programming approach relies on frequent unit testing. In this paper we present a new approach that makes writing unit tests easier. It uses a formal specification la...
متن کاملThe JML and JUnit Way of Unit Testing and its Implementation
Writing unit test code is labor-intensive, hence it is often not done as an integral part of programming. However, unit testing is a practical approach to increasing the correctness and quality of software; for example, Extreme Programming relies on frequent unit testing. In this paper we present a new approach that makes writing unit tests easier. It uses a formal specification language’s runt...
متن کاملGenerating test data from state-based specifications
Although the majority of software testing in industry is conducted at the system level, most formal research has focused on the unit level. As a result, most system-level testing techniques are only described informally. This paper presents formal testing criteria for system level testing that are based on formal specifications of the software. Software testing can only be formalized and quanti...
متن کامل